//package com.huatai.datacenter.controller.panel.common;
//
//import cn.hutool.core.date.DateTime;
//import cn.hutool.core.date.DateUtil;
//import cn.hutool.core.util.StrUtil;
//import com.baomidou.mybatisplus.core.metadata.IPage;
//import io.swagger.annotations.ApiModel;
//import io.swagger.annotations.ApiModelProperty;
//import lombok.Data;
//import org.springframework.validation.annotation.Validated;
//
//import javax.validation.constraints.NotBlank;
//import javax.validation.constraints.NotNull;
//import java.util.HashMap;
//import java.util.Map;
//
///**
// * @title: ContactController
// * @description: API返回结果数据；
// * @copyright: Amych Copyright (c) 2018
// * @company: amych
// * @author: amych
// * @version: 1.0
// * @since: 2018-9-20
// * <p>变更历史：</p>
// * <p>2018-9-20 10:08 amych 创建</p>
// */
//@ApiModel(value = "响应报文信息")
//@Validated
//@Data
//public class ResponseMessage extends BaseMessage {
//
//    public final static Integer ERROE_CODE = 50000;
//    public final static String ERROE_MESSAGE = "操作失败！";
//    public final static Integer SUCCEED_CODE = 99999;
//    public final static String SUCCEED_MESSAGE = "操作成功！";
//    public final static Integer TRY_CODE = 90000;
//    public final static String TRY_MESSAGE = "受理成功，请稍后查询！";
//
//    /**********data下子内容*****************/
//    // 总记录数
//    public final static String KEY_DATA_PAGE_TOTALCOUNT = "totalCount";
//    // 总页数
//    public final static String KEY_DATA_PAGE_TOTALPAGE = "totalPage";
//    // 每页记录数
//    public final static String KEY_DATA_PAGE_PAGESIZE = "pageSize";
//    // 当前页码
//    public final static String KEY_DATA_PAGE_CURRPAGE = "currPage";
//    // 当前页数据
//    public final static String KEY_DATA_PAGE_LIST = "list";
//
//
//    @ApiModelProperty(value = "服务端应用ID")
//    public String appId;
//    @ApiModelProperty(value = "响应时间戳")
//    private Long timestamp;
//    @ApiModelProperty(value = "请求或响应报文协议版本")
//    protected String version;
//    @ApiModelProperty(value = "请求或响应的流水号")
//    protected String seqNo;
//    @ApiModelProperty(value = "该响应对应的原请求流水号")
//    private String reqSeqNo;
//    @ApiModelProperty(value = "响应代码")
//    public Integer code;
//    @ApiModelProperty(value = "响应消息")
//    public String message;
//    @ApiModelProperty(value = "响应成功标志")
//    private Boolean succeed;
//    @ApiModelProperty(value = "请求或响应报文的具体内容")
//    private Object data;
//
//
//    private ResponseMessage(Integer code, String msg) {
//        super();
//        BaseProperties baseProperties = ApplicationContextUtil.getBean(BaseProperties.class);
//        this.appId = baseProperties.getAppId();
//        this.timestamp = System.currentTimeMillis();
//        this.version = "1.0";
//        this.seqNo = StrUtil.format("{}-{}-{}"
//                , baseProperties.appId.toUpperCase().replace("-", "")
//                , DateUtil.format(new DateTime(), "yyyyMMdd")
//                , BaseConstant.buildId());
//        this.reqSeqNo = BaseContextHolder.getReHeadOrBodySeqNo();
//        this.code = code;
//        this.message = msg;
//        this.succeed = code == SUCCEED_CODE;
//    }
//
//    public static ResponseMessage code(@NotBlank Integer code, @NotBlank String msg) {
//        ResponseMessage r = new ResponseMessage(code, msg);
//        return r;
//    }
//
//    public static ResponseMessage code(@NotNull ErrorCodeEntity errorCode, Object... params) {
//        return code(errorCode.getCode(), StrUtil.format(errorCode.getMessage(), params));
//    }
//
//    /**
//     * 构造稍后再试报文
//     *
//     * @return
//     */
//    public static ResponseMessage leter() {
//        return code(TRY_CODE, TRY_MESSAGE);
//    }
//
//    public static ResponseMessage leter(@NotBlank String msg, Object... params) {
//        if (params != null && params.length > 0) {
//            msg = StrUtil.format(msg, params);
//        }
//        return code(TRY_CODE, msg);
//    }
//
//    public static ResponseMessage error() {
//        return code(ERROE_CODE, ERROE_MESSAGE);
//    }
//
//    public static ResponseMessage error(@NotBlank String msg, Object... params) {
//        if (params != null && params.length > 0) {
//            msg = StrUtil.format(msg, params);
//        }
//        return code(ERROE_CODE, msg);
//    }
//
//    public static ResponseMessage ok() {
//        return code(SUCCEED_CODE, SUCCEED_MESSAGE);
//    }
//
//    public static ResponseMessage ok(@NotBlank String msg, Object... params) {
//        if (params != null && params.length > 0) {
//            msg = StrUtil.format(msg, params);
//        }
//        return code(SUCCEED_CODE, msg);
//    }
//
//    public ResponseMessage putData(@NotNull Object data) {
//        this.data = data;
//        return this;
//    }
//
//    public ResponseMessage putData(@NotBlank String key, @NotNull Object value) {
//        Map<String, Object> data = new HashMap<>();
//        data.put(key, value);
//        return this.putData(data);
//    }
//
//    public ResponseMessage putPage(@NotNull IPage page) {
//        return this.putPage(page.getCurrent(), page.getRecords(), page.getTotal(), page.getSize());
//    }
//
//    /**
//     * @param index      当前页码，0表示第一页
//     * @param list       当前页数据
//     * @param totalCount 总页数
//     * @param size       每页大小
//     * @return
//     */
//    public ResponseMessage putPage(long index, Object list, long totalCount, long size) {
//        Map<String, Object> data = new HashMap<>();
//        //当前页码,第一页的索引为1
//        data.put(KEY_DATA_PAGE_CURRPAGE, index);
//        //当前页数据
//        data.put(KEY_DATA_PAGE_LIST, list);
//        //总记录数
//        data.put(KEY_DATA_PAGE_TOTALCOUNT, totalCount);
//        //总页数
//        data.put(KEY_DATA_PAGE_TOTALPAGE, (int) Math.ceil(Double.valueOf(totalCount) / size));
//        //每页记录数
//        data.put(KEY_DATA_PAGE_PAGESIZE, size);
//        return this.putData(data);
//    }
//}
